Published 2004-11-27 11:18:48

DBDO continues to grow, and fortunatly I'm slowly shrinking the number of memory leaks. (As I get a better understanding of all the libraries involved.)

Most core functionality is working, query/insert/update/delete. I'm slowly fixing some of the design mistakes that I made with DB_DataObject (like being able to create update/delete statements that wiped out data. - This is fixed in DBDO, by forcing you to use the DBDO::BUILD argument if you dont want to delete anything more than the current row.)

I also decided to utilize php_error(E_WARNING......) for the debuging code. DBDO::debugLevel(1) issues all the built SQL statements as warnings. (I think this is quite a nice lightweight solution) - that also gives the line/file etc. and can give you backtraces in xdebug.

My other little toy flexyparser has had most of the parsing syntax for the flexy engine added. (I've still got to fix the style parsing stuff.). This little back burner project is still pondering if it should do the template building etc. in C or just be used as a parsing library.... or it could be really clever and build zend opcodes :)

But what caught my eye this week was Harry's post about IDE's, Having written one myself, mainly due to fustration with the existing alternatives on Linux. I agreed alot of the points he made, and some of the commenters added.

If the ability to program in a language depends on the developement tool. (C# and Java come to mind) Then reading code without the editor becomes horiffic.... I wonder if I'm in the group that regard source code as an expression of intent, and if it cant be read, it's very difficult to read intent.

Anyway, I noticed a couple of weeks the sysadmin at one of my clients using gphpedit, I was initially pretty impressed. (I guess like most people are with Zend Dev Studio, until they try it on a slower machine..).

gphpedit has a very nice features set, basically it's very similar to phpmole, but in C with alot of gnome libraries. It had a very nice class browser and syntax highlighting etc. using the scintilla widget, very much like phpmole. It was only until I had a browse round the soucecode in CVS, that I started pondering some of the mistakes.
  • PHP parsing for classes was done by a hand coded lexer, which looks for class/function etc. This is what I originally did with phpmole (it was a mistake then, and given the fact that gphpedit is in C) it is just as bad now. (I ponder if using the lex/bison code from Zend/* would not be more efficent, either that or using phpembed, to actually use the library might be better..
  • Project (bookmark) based browsing was missing, I found this to be invaluable when I designed it into phpmole. Although the interface could probably do with changing. The principle of navigating fromĀ  root directly to all the projects you working on works really well. (actually on unix I should really have used softlinks - but I didnt have vfs then...)
  • Class method hinting. This is something that is near impossible in php (but would be quite usefull) - yes Zend Dev Studio does it, but in reality alot of time it's guesswork. (although it gets alot easier with PHP5 argument hints.). it also tends to slow down the application alot (especially on my pathetic P3/1000), making the program pause just when you really in the flow of things.
One thing gedit did make me consider though, was the idea of building a php editor as a php extension...... php -d extension=editor.so :)


Mentioned By:
google.com : november (76 referals)
google.com : april (38 referals)
google.com : scintilla php (19 referals)
pixelated-dreams.com : Fractured Realities: Using PDO... The reality (14 referals)
google.com : php wxwidgets (11 referals)
google.com : scintilla php editor (9 referals)
pixelated-dreams.com : Fractured Realities: Comment on Using PDO... The reality (6 referals)
google.com : gphpedit xdebug (6 referals)
google.com : gnome php editor (4 referals)
google.com : flexyparser (3 referals)
google.com : php opcodes (3 referals)
google.com : php wxwidget (3 referals)
google.com : soucecode (3 referals)
google.com : soucecode c (3 referals)
google.com : soucecode php (3 referals)
google.com : code of editors in C (2 referals)
google.com : Editors for C in Linux (2 referals)
google.com : gnome php ide (2 referals)
google.com : making a php program pause (2 referals)
google.com : php editors linux (2 referals)

Comments

Scandalously, gonna mention another P-language; don't know if you've seen this: http://silvercity.sourceforge.net/. It builds on Scintilla and adds lexing capabilities for quite a few languages (but not PHP right now) plus bindings for Python.

Believe it's used by the Pythoncard editor which itself is built on wxPython (on wxWidgets (formerly wxWindows)). In wxPython the Scintilla widget is available but called the styled text control (STC) - some notes on the wxPython wiki plus loads more at http://www.yellowbrain.com/stc/index.html

Anyway - just info. Guess wxPython has me won over for building GUIs, given it delivers a native looking interface (wraps MFC on Windows and GTK on Linux), has alot of Widgets and works nicely combined with Pythons various packaging tools and support for threads.
#0 - Harry Fuecks ( Link) on 2004-11-28 05:27:59 Delete Comment

Add Your Comment

Follow us on